package com.xizi.forum.service;

import com.xizi.forum.common.AppResult;
import com.xizi.forum.model.UserInfo;
import jakarta.servlet.http.HttpSession;
import org.springframework.web.multipart.MultipartFile;

public interface IUserService {
    /**
     * 用户注册
     * @param username 用户名（唯一）
     * @param nickname 昵称
     * @param password 密码
     * @param passwordRepeat 重复密码
     * @return
     */
    Boolean register(String username, String nickname, String password, String passwordRepeat);

    /**
     * 用户登入
     * @param username 用户名（唯一）
     * @param password 密码
     * @param session
     * @return
     */
    Boolean login(HttpSession session,String username, String password);

    /**
     * 查询用户信息
     * @param id 用户id
     * @return
     */
    UserInfo selectUserInfoById(Long id);

    int updateUserArticleCount(Long id,Boolean check);

    /**
     * 修改密码
     * @param id 用户id
     * @param oldPassword 老密码
     * @param newPassword 新密码
     * @return
     */
    Boolean updatePassword(Long id,String oldPassword, String newPassword);

    /**
     * 修改用户信息
     * @param userInfo
     * @return
     */
    UserInfo updateUserInfo(UserInfo userInfo);

    void uploadAvatar(UserInfo userInfoCur);


    /**
     * 删除用户 （逻辑删除）
     * id
     * @return
     */
    Boolean deleteUserInfo(Long id);

    /**
     * 保存头像
     * @param id
     * @param avatar
     * @return
     */
    String saveAvatar(Long id, MultipartFile avatar);
}
